NestJS has no built-in HATEOAS support. Implement it by creating a HateoasResource<T> wrapper class and a LinkBuilderService that generates self, update, delete, and related-resource links. Controllers wrap the returned resource in the envelope before returning.
HateoasResource<T> is a generic wrapper — reuse it for every resource type.
LinkBuilderService reads API_URL from config so link hrefs are environment-aware.
Include self, update, delete, and key related-resource links at minimum.
Use rel names from IANA link relation types for standardized semantics.
HATEOAS adds response payload size — only implement it if your clients actually consume the links.